export interface CourseCategory {
  id: string;
  name: string;
  description?: string;
  icon?: string;
}

export interface CourseItem {
  id: string;
  title: string;
  description: string;
  coverImage: string;
  instructorName: string;
  difficulty?: 'BEGINNER' | 'INTERMEDIATE' | 'ADVANCED';
  priceLabel: string;
  highlightTag?: string;
  isNew?: boolean;
  categoryIds?: string[];
  tags?: string[];
}

export interface CourseOutlineLesson {
  id: string;
  title: string;
  duration: string;
  mediaUrl?: string;
}

export interface CourseOutlineSection {
  id: string;
  title: string;
  summary: string;
  lessons: CourseOutlineLesson[];
}

export interface CourseReview {
  id: string;
  reviewer: string;
  avatar?: string;
  rating: number;
  highlight: string;
  content: string;
  createdAt: string;
}

export interface CourseDetailPreview {
  type: 'audio' | 'video';
  url: string;
  duration: string;
}

export interface CourseDetail {
  id: string;
  title: string;
  headline: string;
  coverImage: string;
  instructorName: string;
  instructorTitle: string;
  priceLabel: string;
  originalPrice?: string;
  difficulty: 'BEGINNER' | 'INTERMEDIATE' | 'ADVANCED';
  lessonsCount: number;
  durationLabel: string;
  description: string;
  audience: string[];
  learningHighlights: string[];
  outline: CourseOutlineSection[];
  reviews: CourseReview[];
  previewMedia?: CourseDetailPreview;
}

export interface CoursePlaylistItem {
  id: string;
  title: string;
  lessonCount: number;
  playCountLabel: string;
  coverImage: string;
  priceLabel: string;
  promoTag?: string;
}

export interface InstructorHighlight {
  id: string;
  name: string;
  title: string;
  description: string;
  avatar: string;
  courseSummary: string;
}

export interface CourseLiveEvent {
  id: string;
  title: string;
  coverImage: string;
  startTimeLabel: string;
  actionLabel: string;
  priceLabel?: string;
}

export type CourseHeroCtaVariant = 'primary' | 'ghost'

export interface CourseHeroCta {
  id: string
  label: string
  variant: CourseHeroCtaVariant
}

export interface CourseHeroContent {
  title: string
  subtitle: string
  illustrationUrl: string
  ctas: CourseHeroCta[]
}
